home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / php / pear / docs / paradox / .tmpphp_paradox.h < prev   
C/C++ Source or Header  |  2004-03-24  |  4KB  |  133 lines

  1. /*
  2.   +----------------------------------------------------------------------+
  3.   | PHP Version 4                                                        |
  4.   +----------------------------------------------------------------------+
  5.   | Copyright (c) 1997-2003 The PHP Group                                |
  6.   +----------------------------------------------------------------------+
  7.   | This source file is subject to version 3.0 of the PHP license,       |
  8.   | that is bundled with this package in the file LICENSE, and is        |
  9.   | available through the world-wide-web at the following url:           |
  10.   | http://www.php.net/license/3_0.txt.                                  |
  11.   | If you did not receive a copy of the PHP license and are unable to   |
  12.   | obtain it through the world-wide-web, please send a note to          |
  13.   | license@php.net so we can mail you a copy immediately.               |
  14.   +----------------------------------------------------------------------+
  15.   | Author:                                                              |
  16.   +----------------------------------------------------------------------+
  17. */
  18.  
  19. /* $Id: php_paradox.h,v 1.5 2003/10/17 13:52:25 steinm Exp $ */
  20.  
  21. #ifndef PHP_PARADOX_H
  22. #define PHP_PARADOX_H
  23.  
  24. #if HAVE_PARADOX
  25.  
  26. #include <paradox.h>
  27.  
  28. typedef struct _paradox_object {
  29.     zend_object zo;
  30.     void *ptr;
  31. } paradox_object; /* extends zend_object */
  32.  
  33. extern zend_module_entry paradox_module_entry;
  34. #define phpext_paradox_ptr ¶dox_module_entry
  35.  
  36. #ifdef PHP_WIN32
  37. #define PHP_PARADOX_API __declspec(dllexport)
  38. #else
  39. #define PHP_PARADOX_API
  40. #endif
  41.  
  42. #ifdef ZTS
  43. #include "TSRM.h"
  44. #endif
  45.  
  46. zend_class_entry *paradox_pxdoc_class_entry;
  47. #define REGISTER_PARADOX_CLASS(name, parent) \
  48.     { \
  49.         zend_class_entry ce; \
  50.         INIT_CLASS_ENTRY(ce, "paradox_" # name, paradox_funcs_ ## name); \
  51.         ce.create_object = paradox_object_new_ ## name; \
  52.         paradox_ce_ ## name = zend_register_internal_class_ex(&ce, parent, NULL TSRMLS_CC); \
  53.         memcpy(¶dox_object_handlers_ ## name, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); \
  54.         paradox_object_handlers_ ## name.clone_obj = NULL; \
  55.     }
  56.  
  57. #define PXDOC_FROM_ZVAL(pxdoc, zv)    ZEND_FETCH_RESOURCE(pxdoc, pxdoc_t *, zv, -1, "px object", le_pxdoc)
  58.  
  59. #define PXDOC_FROM_OBJECT(pxdoc, object) \
  60.     { \
  61.         paradox_object *obj = (paradox_object *) zend_object_store_get_object(object TSRMLS_CC); \
  62.         pxdoc = obj->ptr; \
  63.         if (!pxdoc) { \
  64.             php_error_docref(NULL TSRMLS_CC, E_WARNING, "The paradox document wasn't opened"); \
  65.             RETURN_NULL(); \
  66.         } \
  67.     }
  68.  
  69. #define PX_KEYTOLOWER 1
  70. #define PX_KEYTOUPPER 2
  71.  
  72. PHP_MINIT_FUNCTION(paradox);
  73. PHP_MSHUTDOWN_FUNCTION(paradox);
  74. PHP_RINIT_FUNCTION(paradox);
  75. PHP_RSHUTDOWN_FUNCTION(paradox);
  76. PHP_MINFO_FUNCTION(paradox);
  77.  
  78. PHP_FUNCTION(px_new);
  79. PHP_FUNCTION(px_open_fp);
  80. PHP_FUNCTION(px_create_fp);
  81. PHP_FUNCTION(px_close);
  82. PHP_FUNCTION(px_delete);
  83. PHP_FUNCTION(px_get_record);
  84. PHP_FUNCTION(px_put_record);
  85. PHP_FUNCTION(px_numrecords);
  86. PHP_FUNCTION(px_numfields);
  87. PHP_FUNCTION(px_get_field);
  88. PHP_FUNCTION(px_get_schema);
  89. PHP_FUNCTION(px_get_info);
  90. PHP_FUNCTION(px_set_targetencoding);
  91. PHP_FUNCTION(px_set_tablename);
  92.  
  93. /* 
  94.       Declare any global variables you may need between the BEGIN
  95.     and END macros here:     
  96.  
  97. ZEND_BEGIN_MODULE_GLOBALS(paradox)
  98.     long  global_value;
  99.     char *global_string;
  100. ZEND_END_MODULE_GLOBALS(paradox)
  101. */
  102.  
  103. /* In every utility function you add that needs to use variables 
  104.    in php_paradox_globals, call TSRM_FETCH(); after declaring other 
  105.    variables used by that function, or better yet, pass in TSRMLS_CC
  106.    after the last function argument and declare your utility function
  107.    with TSRMLS_DC after the last declared argument.  Always refer to
  108.    the globals in your function as PARADOX_G(variable).  You are 
  109.    encouraged to rename these macros something shorter, see
  110.    examples in any other php module directory.
  111. */
  112.  
  113. #ifdef ZTS
  114. #define PARADOX_G(v) TSRMG(paradox_globals_id, zend_paradox_globals *, v)
  115. #else
  116. #define PARADOX_G(v) (paradox_globals.v)
  117. #endif
  118.  
  119. #else
  120. #define phpext_paradox_ptr NULL
  121. #endif  /* HAVE_PARADOX */
  122.  
  123. #endif    /* PHP_PARADOX_H */
  124.  
  125. /*
  126.  * Local variables:
  127.  * tab-width: 4
  128.  * c-basic-offset: 4
  129.  * End:
  130.  * vim600: noet sw=4 ts=4 fdm=marker
  131.  * vim<600: noet sw=4 ts=4
  132.  */
  133.